-
Notifications
You must be signed in to change notification settings - Fork 564
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: build windows and linux binaries with fips enabled Microsoft Go Fork #4770
feat: build windows and linux binaries with fips enabled Microsoft Go Fork #4770
Conversation
9614ee9
to
2c5dc87
Compare
dc7ade4
to
1892ff6
Compare
f3bf7fa
to
c2b95db
Compare
0a935e2
to
f43160d
Compare
74c60e4
to
a346f4e
Compare
cfd0e5d
to
71485ed
Compare
scripts/download_go.py
Outdated
print("Downloading " + url + " to " + tmp_file) | ||
|
||
try: | ||
urllib.request.urlretrieve(url, tmp_file) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Consider using gzip encoding: https://gist.github.com/Manouchehri/0ce55d239fb07c41c92f. Alternatively, the requests
library does it automatically. On the other hands, I just saw that it's compressed files anyway, so the benefits would be minuscule.
|
||
try: | ||
urllib.request.urlretrieve(url, tmp_file) | ||
print("Download complete") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Shasum checking would be awesome!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Also, as we're talking about FIPS functionality, do the go providers provide GPG keys to check?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks like it's possible from big G. we can fetch the asc like so:
https://storage.googleapis.com/golang/go1.20.linux-amd64.tar.gz.asc
It's not well documented, but the public key to verify looks like it can be fetched like so:
https://dl.google.com/dl/linux/linux_signing_key.pub
MSFT has signatures available via their download URL, e.g. https://aka.ms/golang/release/latest/go1.20.linux-amd64.tar.gz.sig
And can be validated using their public key:
Validate GPG signatures using our public key:
https://download.microsoft.com/download/f/a/2/fa2420dd-3f08-4621-82cf-5a22abcbc8f9/microsoft-managed-lang-compiler.asc
Shortened link for sharing: https://aka.ms/managed-lang-compiler-public-key
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Lets do gpg in a follow-up PR/Story, using aharc-coded public keys in config.yaml and validate on each platform using the given key.
08e776c
to
052667a
Compare
052667a
to
1333871
Compare
Co-authored-by: JSON <jason.luong@snyk.io> Co-authored-by: Avishag Israeli <44115709+Avishagp@users.noreply.github.com>
1333871
to
4ced277
Compare
What does this PR do?
Where should the reviewer start?
The different build steps should include log messages like this
The download go binary step should include
--base_url=https://go.dev/dl/
How should this be manually tested?
Currently this doesn't include a behavioural or functional change.
Any background context you want to provide?
What are the relevant tickets?
HEAD-392, HEAD-395
Screenshots